package day1001;

import javax.sound.midi.Soundbank;

/**
 * @Author:galaxy_yan
 * @Date: 2022/10/1
 * @Time: 19:24
 * @Description
 */
public class StringType {


    public static void main(String[] args) {
        String str = "helloworld" ;
        System.out.println(str.replaceAll("l", "_"));
        System.out.println(str.replaceFirst("l", "_"));
    }

    public static void main10(String[] args) {
        String s = String.format("%d-%d-%d", 2019, 9,14);
        System.out.println(s);
    }

    public static void main9(String[] args) {
        String s = "hello"; // 字符串转数组
        char[] ch = s.toCharArray();
        for (int i = 0; i < ch.length; i++) {
            System.out.print(ch[i]);
        }
        System.out.println();
        // 数组转字符串
        String s2 = new String(ch);
        System.out.println(s2);
    }

    public static void main8(String[] args) {
        String s1 = "hello";
        String s2 = "HELLO";
        // 小写转大写
        System.out.println(s1.toUpperCase());
        // 大写转小写
        System.out.println(s2.toLowerCase());
    }

    public static void main7(String[] args) {
        // 数字转字符串
        String s1 = String.valueOf(1234);
        String s2 = String.valueOf(12.34);
        String s3 = String.valueOf(true);
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
        System.out.println("=================================");
        // 字符串转数字
        // 注意：Integer、Double等是Java中的包装类型，这个后面会讲到
        int data1 = Integer.parseInt("1234");
        double data2 = Double.parseDouble("12.34");
        System.out.println(data1);
        System.out.println(data2);
    }


    public static void main6(String[] args) {
        String s = "aaabbbcccaaabbbccc";
        System.out.println(s.charAt(3)); // 'b'
        System.out.println(s.indexOf('c')); // 6
        System.out.println(s.indexOf('c', 10)); // 15
        System.out.println(s.indexOf("bbb")); // 3
        System.out.println(s.indexOf("bbb", 10)); // 12
        System.out.println(s.lastIndexOf('c')); // 17
        System.out.println(s.lastIndexOf('c', 10)); // 8
        System.out.println(s.lastIndexOf("bbb")); // 12
        System.out.println(s.lastIndexOf("bbb", 10)); // 3
    }

    public static void main5(String[] args) {
        String s1 = new String("abc");
        String s2 = new String("ac");
        String s3 = new String("ABc");
        String s4 = new String("abcdef");
        System.out.println(s1.compareToIgnoreCase(s2));// 不同输出字符差值-1
        System.out.println(s1.compareToIgnoreCase(s3));// 相同输出 0
        System.out.println(s1.compareToIgnoreCase(s4));// 前k个字符完全相同，输出长度差值 -3
    }

    public static void main4(String[] args) {
        String s1="abc";
        String s2="ab";
        String s3="abc";
        String s4="abcdef";
        System.out.println(s1.compareToIgnoreCase(s2));//不同输出字符差值1
        System.out.println(s1.compareTo(s3));//相同输出0
        System.out.println(s1.compareTo(s4));//前k个字符完全相同，输出长度差值-3
    }

    public static void main3(String[] args) {
        String s1 = new String("hello");
        String s2 = new String("hello");
        String s3 = new String("Hello");

        // s1、s2、s3引用的是三个不同对象，因此==比较结果全部为false
         System.out.println(s1 == s2);//false
         System.out.println(s1 == s3); // false

        // equals比较：String对象中的逐个字符
        // 虽然s1与s2引用的不是同一个对象，但是两个对象中放置的内容相同，因此输出true
        // s1与s3引用的不是同一个对象，而且两个对象中内容也不同，因此输出false

        System.out.println(s1.equals(s2)); // true
        System.out.println(s1.equals(s3)); // false

         }



    public static void main2(String[] args) {
        int a=10;
        int b=10;
        int c=20;

//       对于基本类型变量，==比较两个变量中存储的值是否相同
        System.out.println(a==b);   //true
        System.out.println(a==c);  //false

//        对于引用类型变量，==比较两个引用变量引用的是否为同一个对象
        String s1=new String("hello");
        String s2=new String("hello");
        String s3=new String("world");
        String s4=s1;
        System.out.println(s1==s2);   //false
        System.out.println(s1==s3);   //false
        System.out.println(s1==s4);   //true
        s1.equals(s2);
    }

    public static void main1(String[] args) {
//        使用常量串构造
        String s1="hello";
        System.out.println(s1);
//        直接newString类对象
        String s2=new String("world");
        System.out.println(s2);
//        使用字符数组进行构造
        char[] array={'h','e','l','l','o'};
        String s3=new String(array);
        System.out.println(s3);


    }
}
